#ifndef LISTAORD_H
#define LISTAORD_H

#include "ItUniLista.h"
#include "Mensaje.h"
//
class ListaOrd
{
	public:

		ListaOrd();
		ListaOrd(const Lista<Mensaje*>& l);
		void insertar(Mensaje* m);
		void insertarVarios(ListaOrd& l);
		class ItListaOrd
		{
            public:

                ItListaOrd();
                ItListaOrd(Lista<Mensaje*>& l);
                bool HayMas() const;
                const Mensaje* Actual() const;
                Mensaje* ActualAux();
                void Avanzar();

            private:

                ItUniLista<Mensaje*> it;
		};
		class ItListaTemp
		{
			public:

				ItListaTemp();
				ItListaTemp(Lista<Mensaje*>& l, Fecha f);
				bool HayMas() const;
				const Mensaje* Actual() const;
				void Avanzar();

			private:

				ItUniLista<Mensaje*> it;
				Fecha fecha;
		};

		ItListaOrd CrearItListaOrd();
		ItListaTemp CrearItListaTemp(Fecha f);


	private:

		Lista<Mensaje*> lista;
};

#endif

